# Check for the replacement of calls to identical functions.

REQUIRES: system-linux

RUN: %clangxx %p/Inputs/bolt_icf.cpp -g -Wl,-q -o %t.exe
RUN: llvm-bolt %t.exe --relocs -o %t --icf 2>&1 | FileCheck %s
RUN: llvm-nm -n %t | FileCheck %s -check-prefix=CHECK-SYM

CHECK: BOLT-INFO: ICF folded [[#]] out of [[#]] functions in [[#]] passes.

# Check that symbols are updated correctly in the symbol table
CHECK-SYM-DAG: [[#%x,FIZ:]] T _Z3fizv
CHECK-SYM-DAG: [[#FIZ]]     T _Z3fazv
CHECK-SYM-DAG: [[#%x,ZIP:]] T _Z3zipv
CHECK-SYM-DAG: [[#ZIP]]     T _Z3zapv
CHECK-SYM-DAG: [[#%x,FOO:]] T _Z3foov
CHECK-SYM-DAG: [[#FOO]]     T _Z3barv
